package br.com.gestacard.sync.controle.jsf.coordenador;

import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;

import br.com.gestacard.sync.controle.jsf.AppAction;
import br.com.gestacard.sync.entidade.CoordenadorEntity;
import br.com.gestacard.sync.entidade.Status;
import br.com.gestacard.sync.facade.IAppFacade;

import com.powerlogic.jcompany.comuns.PlcException;
import com.powerlogic.jcompany.config.comuns.PlcConstantes;

/**
 * Classe de Controle gerada pelo assistente
 */
public class CoordenadorAction extends AppAction {

	private static final long serialVersionUID = -5554921330206231236L;

	@Override
	protected void trataBotoesConformeLogicaApos() throws PlcException {
		HttpServletRequest request = (HttpServletRequest) FacesContext
				.getCurrentInstance().getExternalContext().getRequest();

		request.setAttribute(PlcConstantes.ACAO.EXIBE_BT_EXCLUIR, "N");

		if (entidadePlc != null) {
			CoordenadorEntity coordenadorEntity = (CoordenadorEntity) entidadePlc;
			if (coordenadorEntity.getStatus().equals(Status.I)) {
				request.setAttribute(PlcConstantes.ACAO.EXIBE_BT_GRAVAR, "N");
			}
		}
		super.trataBotoesConformeLogicaApos();
	}

	@Override
	public String grava() throws PlcException {
		CoordenadorEntity coordenadorEntity = (CoordenadorEntity) entidadePlc;

		if (coordenadorEntity.getTelCelular() == null
				&& coordenadorEntity.getTelFixo() == null) {
			throw new PlcException("erro.telefone.obrigatorio");
		}

		if (entidadeAnteriorPlc == null) {
			IAppFacade facade = (IAppFacade) getServiceFacade();
			if (facade.validaCodigoCadastrado("CoordenadorEntity",
					coordenadorEntity.getId())) {
				throw new PlcException("erro.codigo.cadastrado");
			}
		}

		return super.grava();
	}

}
